const pinyin = function(num) {

};

const json = [{
  label: '回购期限',
  list: [{
    label: '30天以内',
    key: 'days',
    w: '<',
    value: '30'
  }, {
    label: '30-60天',
    key: 'days',
    w: 'between',
    value: '30,60'
  }, {
    label: '60-90天',
    key: 'days',
    w: 'between',
    value: '60,90'
  }, {
    label: '90天以上',
    key: 'days',
    w: '>',
    value: '90'
  }]}, {
  label: '认购金额',
  list: [{
    label: '1万以下',
    key: 'price',
    w: '<',
    value: '10000'
  }, {
    label: '1-5万',
    key: 'price',
    w: 'between',
    value: '10000,50000'
  }, {
    label: '5-10万',
    key: 'price',
    w: 'between',
    value: '50000,100000'
  }, {
    label: '10万以上',
    key: 'price',
    w: '>',
    value: '100000'
  }]}, {
  label: '域名后缀',
  list: [{
    label: '.com',
    key: 'domain',
    w: 'like',
    value: '.com'
  }, {
    label: '.cn',
    key: 'domain',
    w: 'like',
    value: '.cn'
  }, {
    label: '.net',
    key: 'domain',
    w: 'like',
    value: '.net'
  }, {
    label: '.com.cn',
    key: 'domain',
    w: 'like',
    value: '.com.cn'
  }, {
    label: '.cc',
    key: 'domain',
    w: 'like',
    value: '.cc'
  }, {
    label: '.club',
    key: 'domain',
    w: 'like',
    value: '.club'
  }, {
    label: '.vip',
    key: 'domain',
    w: 'like',
    value: '.vip'
  }, {
    label: '.app',
    key: 'domain',
    w: 'like',
    value: '.app'
  }]}, {
  label: '数字品类',
  list: [{
    label: '纯数字',
    w: 'regex'
  }, {
    label: '单数字',
    w: 'regex'
  }, {
    label: '两数字',
    w: 'regex'
  }, {
    label: '三数字',
    w: 'regex'
  }, {
    label: '四数字',
    w: 'regex'
  }, {
    label: '五数字',
    w: 'regex'
  }]}, {
  label: '字母品类',
  list: [{
    label: '纯字母',
    w: 'regex'
  }, {
    label: '单字母',
    w: 'regex'
  }, {
    label: '两字母',
    w: 'regex'
  }, {
    label: '三字母',
    w: 'regex'
  }, {
    label: '四字母',
    w: 'regex'
  }, {
    label: '五字母',
    w: 'regex'
  }]}, {
  label: '拼音品类',
  list: [
    {
      label: '单拼',
      w: 'regex',
      value: pinyin(1)
    }, {
      label: '双拼',
      w: 'regex',
      value: pinyin(2)
    }, {
      label: '三拼',
      w: 'regex',
      value: pinyin(3)
    }
  ]}, {
  label: '杂米',
  list: [
    {
      label: '单杂',
      w: 'regex',
      value: pinyin(1)
    }, {
      label: '双杂',
      w: 'regex',
      value: pinyin(2)
    }, {
      label: '三杂',
      w: 'regex',
      value: pinyin(3)
    }
  ]}
];

const jsonKey = [{
  label: '回购期限',
  list: [{
    label: '30天以内'
  }, {
    label: '30-60天'
  }, {
    label: '60-90天'
  }, {
    label: '90天以上'
  }]}, {
  label: '认购金额',
  list: [{
    label: '1万以下'
  }, {
    label: '1-5万'
  }, {
    label: '5-10万'
  }, {
    label: '10万以上'
  }]}, {
  label: '域名后缀',
  list: [{
    label: '.com'
  }, {
    label: '.cn'
  }, {
    label: '.net'
  }, {
    label: '.com.cn'
  }, {
    label: '.cc'
  }, {
    label: '.club'
  }, {
    label: '.vip'
  }, {
    label: '.app'
  }]}, {
  label: '数字品类',
  list: [{
    label: '纯数字'
  }, {
    label: '单数字'
  }, {
    label: '两数字'
  }, {
    label: '三数字'
  }, {
    label: '四数字'
  }, {
    label: '五数字'
  }]}, {
  label: '字母品类',
  list: [{
    label: '纯字母'
  }, {
    label: '单字母'
  }, {
    label: '两字母'
  }, {
    label: '三字母'
  }, {
    label: '四字母'
  }, {
    label: '五字母'
  }]}, {
  label: '拼音品类',
  list: [
    {
      label: '单拼'
    }, {
      label: '双拼'
    }, {
      label: '三拼'
    }
  ]}, {
  label: '杂米',
  list: [
    {
      label: '单杂'
    }, {
      label: '双杂'
    }, {
      label: '三杂'
    }
  ]}
];
const { think } = require('thinkjs');

module.exports = class extends think.Model {
  list() {
    return jsonKey;
  }
  find(key, val) {
    console.log(key, val);
    for (const item of json) {
      if (item.label === key) {
        for (const child of item.list) {
          if (child.label === val) {
            return child;
          }
        }
      }
    }
  }
  addPinyin(domain) {
    const str = [];
    const num1 = /^((a)|(ai)|(an)|(ang)|(ao)|(ba)|(bai)|(ban)|(bang)|(bao)|(bei)|(ben)|(beng)|(bi)|(bian)|(biao)|(bie)|(bin)|(bing)|(bo)|(bu)|(ca)|(cai)|(can)|(cang)|(cao)|(ce)|(cen)|(ceng)|(cha)|(chai)|(chan)|(chang)|(chao)|(che)|(chen)|(cheng)|(chi)|(chong)|(chou)|(chu)|(chua)|(chuai)|(chuan)|(chuang)|(chui)|(chun)|(chuo)|(ci)|(cong)|(cou)|(cu)|(cuan)|(cui)|(cun)|(cuo)|(da)|(dai)|(dan)|(dang)|(dao)|(de)|(den)|(dei)|(deng)|(di)|(dia)|(dian)|(diao)|(die)|(ding)|(diu)|(dong)|(dou)|(du)|(duan)|(dui)|(dun)|(duo)|(e)|(ei)|(en)|(eng)|(er)|(fa)|(fan)|(fang)|(fei)|(fen)|(feng)|(fo)|(fou)|(fu)|(ga)|(gai)|(gan)|(gang)|(gao)|(ge)|(gei)|(gen)|(geng)|(gong)|(gou)|(gu)|(gua)|(guai)|(guan)|(guang)|(gui)|(gun)|(guo)|(ha)|(hai)|(han)|(hang)|(hao)|(he)|(hei)|(hen)|(heng)|(hong)|(hou)|(hu)|(hua)|(huai)|(huan)|(huang)|(hui)|(hun)|(huo)|(ji)|(jia)|(jian)|(jiang)|(jiao)|(jie)|(jin)|(jing)|(jiong)|(jiu)|(ju)|(juan)|(jue)|(jun)|(ka)|(kai)|(kan)|(kang)|(kao)|(ke)|(ken)|(keng)|(kong)|(kou)|(ku)|(kua)|(kuai)|(kuan)|(kuang)|(kui)|(kun)|(kuo)|(la)|(lai)|(lan)|(lang)|(lao)|(le)|(lei)|(leng)|(li)|(lia)|(lian)|(liang)|(liao)|(lie)|(lin)|(ling)|(liu)|(long)|(lou)|(lu)|(luan)|(lue)|(lun)|(luo)|(ma)|(mai)|(man)|(mang)|(mao)|(me)|(mei)|(men)|(meng)|(mi)|(mian)|(miao)|(mie)|(min)|(ming)|(miu)|(mo)|(mou)|(mu)|(na)|(nai)|(nan)|(nang)|(nao)|(ne)|(nei)|(nen)|(neng)|(ni)|(nian)|(niang)|(niao)|(nie)|(nin)|(ning)|(niu)|(nong)|(nou)|(nu)|(nuan)|(nuo)|(nun)|(o)|(ou)|(pa)|(pai)|(pan)|(pang)|(pao)|(pei)|(pen)|(peng)|(pi)|(pian)|(piao)|(pie)|(pin)|(ping)|(po)|(pou)|(pu)|(qi)|(qia)|(qian)|(qiang)|(qiao)|(qie)|(qin)|(qing)|(qiong)|(qiu)|(qu)|(quan)|(que)|(qun)|(ran)|(rang)|(rao)|(re)|(ren)|(reng)|(ri)|(rong)|(rou)|(ru)|(ruan)|(rui)|(run)|(ruo)|(sa)|(sai)|(san)|(sang)|(sao)|(se)|(sen)|(seng)|(sha)|(shai)|(shan)|(shang)|(shao)|(she)|(shei)|(shen)|(sheng)|(shi)|(shou)|(shu)|(shua)|(shuai)|(shuan)|(shuang)|(shui)|(shun)|(shuo)|(si)|(song)|(sou)|(su)|(suan)|(sui)|(sun)|(suo)|(ta)|(tai)|(tan)|(tang)|(tao)|(te)|(teng)|(ti)|(tian)|(tiao)|(tie)|(ting)|(tong)|(tou)|(tu)|(tuan)|(tui)|(tun)|(tuo)|(wa)|(wai)|(wan)|(wang)|(wei)|(wen)|(weng)|(wo)|(wu)|(xi)|(xia)|(xian)|(xiang)|(xiao)|(xie)|(xin)|(xing)|(xiong)|(xiu)|(xu)|(xuan)|(xue)|(xun)|(ya)|(yan)|(yang)|(yao)|(ye)|(yi)|(yin)|(ying)|(yo)|(yong)|(you)|(yu)|(yuan)|(yue)|(yun)|(za)|(zai)|(zan)|(zang)|(zao)|(ze)|(zei)|(zen)|(zeng)|(zha)|(zhai)|(zhan)|(zhang)|(zhao)|(zhe)|(zhei)|(zhen)|(zheng)|(zhi)|(zhong)|(zhou)|(zhu)|(zhua)|(zhuai)|(zhuan)|(zhuang)|(zhui)|(zhun)|(zhuo)|(zi)|(zong)|(zou)|(zu)|(zuan)|(zui)|(zun)|(zuo)){2}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    const num2 = /^((a)|(ai)|(an)|(ang)|(ao)|(ba)|(bai)|(ban)|(bang)|(bao)|(bei)|(ben)|(beng)|(bi)|(bian)|(biao)|(bie)|(bin)|(bing)|(bo)|(bu)|(ca)|(cai)|(can)|(cang)|(cao)|(ce)|(cen)|(ceng)|(cha)|(chai)|(chan)|(chang)|(chao)|(che)|(chen)|(cheng)|(chi)|(chong)|(chou)|(chu)|(chua)|(chuai)|(chuan)|(chuang)|(chui)|(chun)|(chuo)|(ci)|(cong)|(cou)|(cu)|(cuan)|(cui)|(cun)|(cuo)|(da)|(dai)|(dan)|(dang)|(dao)|(de)|(den)|(dei)|(deng)|(di)|(dia)|(dian)|(diao)|(die)|(ding)|(diu)|(dong)|(dou)|(du)|(duan)|(dui)|(dun)|(duo)|(e)|(ei)|(en)|(eng)|(er)|(fa)|(fan)|(fang)|(fei)|(fen)|(feng)|(fo)|(fou)|(fu)|(ga)|(gai)|(gan)|(gang)|(gao)|(ge)|(gei)|(gen)|(geng)|(gong)|(gou)|(gu)|(gua)|(guai)|(guan)|(guang)|(gui)|(gun)|(guo)|(ha)|(hai)|(han)|(hang)|(hao)|(he)|(hei)|(hen)|(heng)|(hong)|(hou)|(hu)|(hua)|(huai)|(huan)|(huang)|(hui)|(hun)|(huo)|(ji)|(jia)|(jian)|(jiang)|(jiao)|(jie)|(jin)|(jing)|(jiong)|(jiu)|(ju)|(juan)|(jue)|(jun)|(ka)|(kai)|(kan)|(kang)|(kao)|(ke)|(ken)|(keng)|(kong)|(kou)|(ku)|(kua)|(kuai)|(kuan)|(kuang)|(kui)|(kun)|(kuo)|(la)|(lai)|(lan)|(lang)|(lao)|(le)|(lei)|(leng)|(li)|(lia)|(lian)|(liang)|(liao)|(lie)|(lin)|(ling)|(liu)|(long)|(lou)|(lu)|(luan)|(lue)|(lun)|(luo)|(ma)|(mai)|(man)|(mang)|(mao)|(me)|(mei)|(men)|(meng)|(mi)|(mian)|(miao)|(mie)|(min)|(ming)|(miu)|(mo)|(mou)|(mu)|(na)|(nai)|(nan)|(nang)|(nao)|(ne)|(nei)|(nen)|(neng)|(ni)|(nian)|(niang)|(niao)|(nie)|(nin)|(ning)|(niu)|(nong)|(nou)|(nu)|(nuan)|(nuo)|(nun)|(o)|(ou)|(pa)|(pai)|(pan)|(pang)|(pao)|(pei)|(pen)|(peng)|(pi)|(pian)|(piao)|(pie)|(pin)|(ping)|(po)|(pou)|(pu)|(qi)|(qia)|(qian)|(qiang)|(qiao)|(qie)|(qin)|(qing)|(qiong)|(qiu)|(qu)|(quan)|(que)|(qun)|(ran)|(rang)|(rao)|(re)|(ren)|(reng)|(ri)|(rong)|(rou)|(ru)|(ruan)|(rui)|(run)|(ruo)|(sa)|(sai)|(san)|(sang)|(sao)|(se)|(sen)|(seng)|(sha)|(shai)|(shan)|(shang)|(shao)|(she)|(shei)|(shen)|(sheng)|(shi)|(shou)|(shu)|(shua)|(shuai)|(shuan)|(shuang)|(shui)|(shun)|(shuo)|(si)|(song)|(sou)|(su)|(suan)|(sui)|(sun)|(suo)|(ta)|(tai)|(tan)|(tang)|(tao)|(te)|(teng)|(ti)|(tian)|(tiao)|(tie)|(ting)|(tong)|(tou)|(tu)|(tuan)|(tui)|(tun)|(tuo)|(wa)|(wai)|(wan)|(wang)|(wei)|(wen)|(weng)|(wo)|(wu)|(xi)|(xia)|(xian)|(xiang)|(xiao)|(xie)|(xin)|(xing)|(xiong)|(xiu)|(xu)|(xuan)|(xue)|(xun)|(ya)|(yan)|(yang)|(yao)|(ye)|(yi)|(yin)|(ying)|(yo)|(yong)|(you)|(yu)|(yuan)|(yue)|(yun)|(za)|(zai)|(zan)|(zang)|(zao)|(ze)|(zei)|(zen)|(zeng)|(zha)|(zhai)|(zhan)|(zhang)|(zhao)|(zhe)|(zhei)|(zhen)|(zheng)|(zhi)|(zhong)|(zhou)|(zhu)|(zhua)|(zhuai)|(zhuan)|(zhuang)|(zhui)|(zhun)|(zhuo)|(zi)|(zong)|(zou)|(zu)|(zuan)|(zui)|(zun)|(zuo)){3}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;

    const num3 = /^((a)|(ai)|(an)|(ang)|(ao)|(ba)|(bai)|(ban)|(bang)|(bao)|(bei)|(ben)|(beng)|(bi)|(bian)|(biao)|(bie)|(bin)|(bing)|(bo)|(bu)|(ca)|(cai)|(can)|(cang)|(cao)|(ce)|(cen)|(ceng)|(cha)|(chai)|(chan)|(chang)|(chao)|(che)|(chen)|(cheng)|(chi)|(chong)|(chou)|(chu)|(chua)|(chuai)|(chuan)|(chuang)|(chui)|(chun)|(chuo)|(ci)|(cong)|(cou)|(cu)|(cuan)|(cui)|(cun)|(cuo)|(da)|(dai)|(dan)|(dang)|(dao)|(de)|(den)|(dei)|(deng)|(di)|(dia)|(dian)|(diao)|(die)|(ding)|(diu)|(dong)|(dou)|(du)|(duan)|(dui)|(dun)|(duo)|(e)|(ei)|(en)|(eng)|(er)|(fa)|(fan)|(fang)|(fei)|(fen)|(feng)|(fo)|(fou)|(fu)|(ga)|(gai)|(gan)|(gang)|(gao)|(ge)|(gei)|(gen)|(geng)|(gong)|(gou)|(gu)|(gua)|(guai)|(guan)|(guang)|(gui)|(gun)|(guo)|(ha)|(hai)|(han)|(hang)|(hao)|(he)|(hei)|(hen)|(heng)|(hong)|(hou)|(hu)|(hua)|(huai)|(huan)|(huang)|(hui)|(hun)|(huo)|(ji)|(jia)|(jian)|(jiang)|(jiao)|(jie)|(jin)|(jing)|(jiong)|(jiu)|(ju)|(juan)|(jue)|(jun)|(ka)|(kai)|(kan)|(kang)|(kao)|(ke)|(ken)|(keng)|(kong)|(kou)|(ku)|(kua)|(kuai)|(kuan)|(kuang)|(kui)|(kun)|(kuo)|(la)|(lai)|(lan)|(lang)|(lao)|(le)|(lei)|(leng)|(li)|(lia)|(lian)|(liang)|(liao)|(lie)|(lin)|(ling)|(liu)|(long)|(lou)|(lu)|(luan)|(lue)|(lun)|(luo)|(ma)|(mai)|(man)|(mang)|(mao)|(me)|(mei)|(men)|(meng)|(mi)|(mian)|(miao)|(mie)|(min)|(ming)|(miu)|(mo)|(mou)|(mu)|(na)|(nai)|(nan)|(nang)|(nao)|(ne)|(nei)|(nen)|(neng)|(ni)|(nian)|(niang)|(niao)|(nie)|(nin)|(ning)|(niu)|(nong)|(nou)|(nu)|(nuan)|(nuo)|(nun)|(o)|(ou)|(pa)|(pai)|(pan)|(pang)|(pao)|(pei)|(pen)|(peng)|(pi)|(pian)|(piao)|(pie)|(pin)|(ping)|(po)|(pou)|(pu)|(qi)|(qia)|(qian)|(qiang)|(qiao)|(qie)|(qin)|(qing)|(qiong)|(qiu)|(qu)|(quan)|(que)|(qun)|(ran)|(rang)|(rao)|(re)|(ren)|(reng)|(ri)|(rong)|(rou)|(ru)|(ruan)|(rui)|(run)|(ruo)|(sa)|(sai)|(san)|(sang)|(sao)|(se)|(sen)|(seng)|(sha)|(shai)|(shan)|(shang)|(shao)|(she)|(shei)|(shen)|(sheng)|(shi)|(shou)|(shu)|(shua)|(shuai)|(shuan)|(shuang)|(shui)|(shun)|(shuo)|(si)|(song)|(sou)|(su)|(suan)|(sui)|(sun)|(suo)|(ta)|(tai)|(tan)|(tang)|(tao)|(te)|(teng)|(ti)|(tian)|(tiao)|(tie)|(ting)|(tong)|(tou)|(tu)|(tuan)|(tui)|(tun)|(tuo)|(wa)|(wai)|(wan)|(wang)|(wei)|(wen)|(weng)|(wo)|(wu)|(xi)|(xia)|(xian)|(xiang)|(xiao)|(xie)|(xin)|(xing)|(xiong)|(xiu)|(xu)|(xuan)|(xue)|(xun)|(ya)|(yan)|(yang)|(yao)|(ye)|(yi)|(yin)|(ying)|(yo)|(yong)|(you)|(yu)|(yuan)|(yue)|(yun)|(za)|(zai)|(zan)|(zang)|(zao)|(ze)|(zei)|(zen)|(zeng)|(zha)|(zhai)|(zhan)|(zhang)|(zhao)|(zhe)|(zhei)|(zhen)|(zheng)|(zhi)|(zhong)|(zhou)|(zhu)|(zhua)|(zhuai)|(zhuan)|(zhuang)|(zhui)|(zhun)|(zhuo)|(zi)|(zong)|(zou)|(zu)|(zuan)|(zui)|(zun)|(zuo)){4}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    if (num3.test(domain)) {
      str.push('三拼');
      return str;
    }
    if (num2.test(domain)) {
      str.push('双拼');
      return str;
    }
    if (num1.test(domain)) {
      str.push('单拼');
      return str;
    }
    return str;
  }
  addShuzi(domain) {
    const str = [];
    const allNum = /^(?=^.{3,255}$)[0-9][-0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    const num1 = /^(?=^.{3,255}$)[0-9][-0-9]{0,1}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    const num2 = /^(?=^.{3,255}$)[0-9][-0-9]{1}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    const num3 = /^(?=^.{3,255}$)[0-9][-0-9]{2}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    const num4 = /^(?=^.{3,255}$)[0-9][-0-9]{3}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    const num5 = /^(?=^.{3,255}$)[0-9][-0-9]{4}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;

    if (allNum.test(domain)) {
      str.push('纯数字');
    }
    if (num5.test(domain)) {
      str.push('五数字');
      return str;
    }
    if (num4.test(domain)) {
      str.push('四数字');
      return str;
    }
    if (num3.test(domain)) {
      str.push('三数字');
      return str;
    }
    if (num2.test(domain)) {
      str.push('两数字');
      return str;
    }
    if (num1.test(domain)) {
      str.push('单数字');
      return str;
    }
    return str;
  }
  addZimu(domain) {
    const str = [];
    const allNum = /^(?=^.{3,255}$)[a-zA-Z][-a-zA-Z]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    const num1 = /^(?=^.{3,255}$)[a-zA-Z][-a-zA-Z]{0,1}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    const num2 = /^(?=^.{3,255}$)[a-zA-Z][-a-zA-Z]{1}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    const num3 = /^(?=^.{3,255}$)[a-zA-Z][-a-zA-Z]{2}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    const num4 = /^(?=^.{3,255}$)[a-zA-Z][-a-zA-Z]{3}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    const num5 = /^(?=^.{3,255}$)[a-zA-Z][-a-zA-Z]{4}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;

    if (allNum.test(domain)) {
      str.push('纯字母');
    }
    if (num5.test(domain)) {
      str.push('五字母');
      return str;
    }
    if (num4.test(domain)) {
      str.push('四字母');
      return str;
    }
    if (num3.test(domain)) {
      str.push('三字母');
      return str;
    }
    if (num2.test(domain)) {
      str.push('两字母');
      return str;
    }
    if (num1.test(domain)) {
      str.push('单字母');
      return str;
    }
    return str;
  }
  addZa(domain) {
    const str = [];

    const allZimu = /^(?=^.{3,255}$)[a-zA-Z][-a-zA-Z]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
    const allNum = /^(?=^.{3,255}$)[0-9][-0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;

    if (allZimu.test(domain) || allNum.test(domain)) {
      return str;
    }

    const c = domain.split('.');
    let m = '';
    if (c.length === 3) {
      m = c[1];
    } else if (c.length === 2) {
      m = c[0];
    } else {
      return str;
    }
    let n = 0;
    let s = 0;
    for (const item of m) {
      // console.log(parseInt(item));
      if (parseInt(item)) {
        n++;
      } else {
        s++;
      }
      // console.log(think.isNumber(parseInt(item)));
    }
    if (n > 2 || s > 2) {
      str.push('三杂');
      return str;
    } else if (n > 1 || s > 1) {
      str.push('双杂');
      return str;
    } else if (n === 1 && s === 1) {
      str.push('单杂');
      return str;
    }

    return str;
  }
};
